1. Field of the Invention
The present invention relates to a storage control method and a storage control apparatus used in an information processing system equipped with a buffer storage for the purpose of a quick data access. In particular, the present invention relates to a control method performed when the buffer storage fetches data thereinto.
2. Description of the Related Art
It is a common practice to equip a buffer storage (hereinafter occasionally referred to as a BS) between a main storage unit and a processing unit in a modern information processing system in order to meet a requirement to increase a data processing rate. Namely, a part of data that seems to be frequently used by the processing unit among data in the main storage unit is stored in a high-speed, small capacity memory called a buffer storage, thereby shortening an effective access time from the processing unit and improving a performance of the entire information processing system.
The buffer storage has, however, an extremely smaller capacity than the main storage unit. The buffer storage, therefore, sometimes does not contain the data required by the processing unit. In this case, it is, of course, necessary to fetch the required data from the main storage unit. A process to fetch data into a buffer storage is termed "move-in". A quantity of data moved from the main storage unit to the buffer storage has a significant effect on a hit rate representing a rate that the data is present in the buffer storage and a busy condition of the main storage unit. Therefore, an appropriate control of the data quantity to be moved can improve the performance of an information processing system.
In practice, the buffer storage has a data unit divided into units called blocks, each including several tens to several hundreds of bytes, where data is stored in such a way as to correspond to data held in the main storage unit. The buffer storage also has memory called a tag unit, which like the data unit, is divided into blocks, into which entries corresponding to the respective blocks of the data unit are stored one-by-one. Into each entry of the tag unit, an address of the main storage unit of a corresponding block is stored.
When receiving a request for data from the processing unit, the tag unit in the buffer storage is first referred to. If an address of the required data is stored in any entry, it is judged that the required data is present in the data unit in the buffer storage, and the data in a corresponding block is sent out to the processing unit. If an address of the required data is not stored in the tag unit, it is judged that the required data is absent from the buffer storage so that the required data is moved to the buffer storage from the main storage unit.
In the conventional technique, data for a given block size is always moved to the buffer storage. That is, data of a predetermined quantity has been heretofore moved irrespective of a busy condition of the main storage unit or an input queue to the main storage unit. The block size is, in general, set several times larger than a magnitude of the data that the processing unit directly requires in order to fetch collectively data in the vicinity of the required data since the data in the vicinity of the required data has a high probability to be used in future, so as to improve a probability of presence of the data (i.e., a hit rate) in the buffer storage. On the other hand, such a measure has a drawback in that an increase in the block size is prone to cause a memory busy state for a long time. The block size is, therefore, set within a range from several tens to several hundreds of bytes.
In some programs executed by the processing unit, frequently issued branch instructions may cause a discontinuation in executed instructions or addresses of processed data. Under such circumstances, if data for one block is moved into the buffer storage, there are some cases where a part of the data remains unused. Since data for one block is moved according to the conventional technique, more data than required is fetched, as a consequence.
As above, the conventional technique may cause a busy condition of the storage unit due to move-in of unnecessary data, leading to an increase in waiting time, an increase in memory access time and a degradation of the processing performance of the information processing system. To solve these shortages, it is effective to decrease the block size. The decreased block size, however, may cause a decrease in the hit rate, an increase in the number of entries of the tag unit, and further, an increase in cost due to an increased amount of materials. From a total view, it is not always a good plan to decrease the block size thoughtlessly.